package com.copa.utils;

import com.alibaba.fastjson.JSON;
import org.jsoup.Connection;
import org.jsoup.Jsoup;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @author copa
 * @createDate 2022-03-03 20:58
 * @function
 */
public class MyGroupMessageUtil {

    /**
     * 发送文本消息
     * @param robotWxid 文本型,用哪个机器人发这条消息
     * @param toWxid 文本型, 对方的ID（群号码）
     * @param msg 文本型, 发送的内容
     * @throws IOException
     */
    public static void sendTextMessage(String robotWxid, String toWxid, String msg) {
        Map<String, String> dataMap = new HashMap<>();
        dataMap.put("api", "SendTextMsg");
        dataMap.put("robot_wxid", robotWxid);
        dataMap.put("to_wxid", toWxid);
        dataMap.put("msg", msg);
        String json = JSON.toJSONString(dataMap);
        try {
            Jsoup.connect("http://127.0.0.1:88/httpAPI")
                    .header("Accept", "application/json, text/plain, */*")
                    .header("Content-Type", "application/json;charset=UTF-8")
                    .method(Connection.Method.POST)
                    .ignoreContentType(true)
                    .data(dataMap)
                    .requestBody(json)
                    .execute().body();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void sendGroupMsgAndAt(String robotWxid,
                                         String groupWxid,
                                         String memberWxid,
                                         String memberName,
                                         String msg) {
        Map<String, String> dataMap = new HashMap<>();
        dataMap.put("api", "SendGroupMsgAndAt");
        dataMap.put("robot_wxid", robotWxid);
        dataMap.put("group_wxid", groupWxid);
        dataMap.put("member_wxid", memberWxid);
        dataMap.put("member_name", memberName);
        dataMap.put("msg", msg);
        String json = JSON.toJSONString(dataMap);
        try {
            Jsoup.connect("http://127.0.0.1:88/httpAPI")
                    .header("Accept", "application/json, text/plain, */*")
                    .header("Content-Type", "application/json;charset=UTF-8")
                    .method(Connection.Method.POST)
                    .ignoreContentType(true)
                    .data(dataMap)
                    .requestBody(json)
                    .execute().body();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 发送音乐消息
     * @param robotWxid 文本型, 用哪个机器人发这条消息
     * @param toWxid 文本型, 对方的ID（群id）
     * @param musicName 歌曲名
     * @param type 整数型, 0 随机模式 / 1 酷狗 / 2 qq音乐
     */
    public static void sendMusicMessage(String robotWxid, String toWxid, String musicName, Integer type) {
        Map<String, String> dataMap = new HashMap<>();
        dataMap.put("api", "SendMusicMsg");
        dataMap.put("robot_wxid", robotWxid);
        dataMap.put("to_wxid", toWxid);
        dataMap.put("name", musicName);
        dataMap.put("type", String.valueOf(type));
        String json = JSON.toJSONString(dataMap);
        try {
            Jsoup.connect("http://127.0.0.1:88/httpAPI")
                    .header("Accept", "application/json, text/plain, */*")
                    .header("Content-Type", "application/json;charset=UTF-8")
                    .method(Connection.Method.POST)
                    .ignoreContentType(true)
                    .data(dataMap)
                    .requestBody(json)
                    .execute().body();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 发送图片消息
     * @param robotWxid 文本型, 用哪个机器人发这条消息
     * @param toWxid 文本型, 对方的ID（群号）
     * @param path 文本型, 图片文件的绝对路径/URL/图片数据BASE64（以BASE64:开头）
     */
    public static void sendPicMessage(String robotWxid, String toWxid, String path) {
        Map<String, String> dataMap = new HashMap<>();
        dataMap.put("api", "SendImageMsg");
        dataMap.put("robot_wxid", robotWxid);
        dataMap.put("to_wxid", toWxid);
        dataMap.put("path", path);
        String json = JSON.toJSONString(dataMap);
        try {
            Jsoup.connect("http://127.0.0.1:88/httpAPI")
                    .header("Accept", "application/json, text/plain, */*")
                    .header("Content-Type", "application/json;charset=UTF-8")
                    .method(Connection.Method.POST)
                    .ignoreContentType(true)
                    .data(dataMap)
                    .requestBody(json)
                    .execute().body();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
